//出票模块头文件

#ifndef TICKET_PRINT_H
#define TICKET_PRINT_H

#include <stdbool.h> // For bool type
#include <stddef.h> // For size_t

// 购票记录结构体
typedef struct {
    char ticket_id[64];      // 票号 (例如 "TICKET_20250723153000_1")
    char username[32];       // 购买用户的用户名
    char movie_id[10];       // 电影ID (例如 "M001")
    char session_id[20];     // 复合场次ID (例如 "M001_S001")
    int ticket_count;        // 购买的票数 (这里通常是1，因为每条记录代表一张票)
    char seat_info[10];      // 单个座位信息 (例如 "A1")
    float price;             // 单张票的价格
    char purchase_time[80];  // 购买时间戳
    bool selected_for_print; // 是否被选中用于出票 (UI临时状态)
    void *ui_panel;          // 对应的UI面板对象指针 (lv_obj_t*), 使用 void* 以避免在此处包含 lvgl.h
} Ticket;

// 购票记录文件路径
#define PURCHASE_RECORDS_FILE_PATH "purchase_records.txt"
// 最大购票记录数量
#define MAX_PURCHASE_RECORDS 200 // 假设最多存储200条购票记录

// 全局变量声明用于存储当前用户的购票记录
extern Ticket g_user_tickets[MAX_PURCHASE_RECORDS];
extern int g_num_user_tickets;

// 购票记录管理函数声明
int load_purchase_records(const char *username, Ticket tickets[], int max_tickets);
int remove_purchase_record(const char *ticket_id_to_remove);

#endif // TICKET_PRINT_H
